(function () {

    var x;
    var cacheFileSize = 0;

    function onInit() {
        onInitData();
        onGetDocCacheSize();
        onClearCacheFile();
        onQuitCurrAccount();
    }

    function onInitData() {
        cacheFileSize = 0;// 每次都需要初始化缓存的大小
    }


    /**
     * 遍历本地文件系统文件夹获取所有文件的大小
     */
    function onGetDocCacheSize() {
        if (!app.isBrowser) {
            // 获取指定文件夹下的所有文件大小
            window.resolveLocalFileSystemURL(cordova.file.externalApplicationStorageDirectory + '/cache', function (root) {
                root.getDirectory("", {create: false}, function (directoryEntry) {
                    directoryEntry.createReader().readEntries(  //如果 entry 已经是 DirectoryEntry 可以直接从这步开始
                        function (entryArray) {
                            console.log("遍历目录：");
                            for (var index in entryArray) {
                                // console.log(entryArray[index].toURL());  //native file
                                // 获取文件数据
                                entryArray[index].getMetadata(
                                    function (metadata) {
                                        cacheFileSize += metadata.size;
                                        if (index == entryArray.length - 1) {
                                            onCountAllCacheSizeUtil(cacheFileSize);
                                        }
                                    }, function (error) {
                                        console.log(error)
                                    });
                            }
                        }, function (file_error) {
                            console.log("遍历错误：" + file_error);
                        });
                }, function (file_error) {
                    console.log("错误：" + file_error);
                });
            }, function (err) {
                console.log("访问错误" + err);
            });
        }
    }


    /**
     * 清除缓存
     */
    function onClearCacheFile() {

        x.$view.find('ul.other_g').on("click", 'li.cache', function () {
            window.resolveLocalFileSystemURL(cordova.file.externalApplicationStorageDirectory, function (root) {
                root.getDirectory(
                    "cache",  //注意：根目录"cache"不能够删除
                    {create: false},
                    function (directory_entry) {
                        directory_entry.removeRecursively(  //如果 entry 已经是 DirectoryEntry 可以直接从这步开始
                            function () {
                                app.showToast("清除成功");
                                x.$view.find('ul.other_g .cache .title').text("0k");
                            },
                            function (file_error) {
                                app.showToast("清除失败：" + file_error, 2500);
                            }
                        );
                    },
                    function (file_error) {
                        alert("错误：" + file_error);
                    }
                );
            });
        });
    }


    /**
     * 退出登录
     */
    function onQuitCurrAccount() {
        x.$view.find('.quit').on("click","a",function () {
            app.logout();
        });
    }

    /**
     * 获取和设置缓存大小
     * @param data
     */
    function onCountAllCacheSizeUtil(data) {
        var cache = onByteChangeCountUtil(data);
        x.$view.find('ul.other_g .cache .title').text(cache.size + cache.unit);
    }



    /**
     * 字节转换成其他单位
     * @param data
     * @returns {{}}
     */
    function onByteChangeCountUtil(data) {
        var cache = {};
        if (data < 1024 * 1024) {
            cache.size = (data / 1024).toFixed(2);
            cache.unit = "K";
        } else if (data >= 1024 * 1024 && data < 1024 * 1024 * 1024) {
            cache.size = (data / (1024 * 1024)).toFixed(2);
            cache.unit = "M";
        } else {
            cache.size = (data / (1024 * 1024 * 1024)).toFixed(2);
            cache.unit = "G";
        }
        return cache;
    }

    window.onViewInit_setting_index = function (view) {
        x = view.context;
        onInit();
    }
})();